<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        // 数据的类型
        // 原始类型：null、undefined、number、string、boolean
        // 对象类型：对象（暂不考虑）

        // 数据的表现形式
        // 数据有三种表现形式
        // 1.直接书写的东西==>字面量
        // 2.变量
        // 3.表达式（多个数据参与的运算），表达式的运算结果称之为返回结果（return value）
        // **所有需要数据的地方都可以使用上面任何一种表现形式

        //数据的运算
        // 数学运算:+  -  *  /  %  ++  --
        //字符串运算:+ (只要有一端是字符串,结果就是字符串)
        // 赋值运算:=  +=  -=  *= /= %=
        //赋值运算的表达式，返回结果为所赋的值

        //*NaN=>number类型的非数
        // undefined不能和0比较

        // 逻辑运算符   &&  ||  !
        // 运算结果为真是的值
        // 被认定为false的值
        // undefined,null,NaN,'',0,false  ->转换为布尔值都是false

        // var a = 1 && 2;
        //先看第一个表达式转换成布尔值的结果，如果结果为真，那么它会看第二个表达式转换为布尔值的结果
        //然后，如果只有两个表达式的话，只看到第二个表达式，就可以返回该表达式的值
        // 如果第一个是假直接返回
        // 短路语句
        // 2 > 1 && console.log('666');

        // var num = 1 || 3;
        // 先看第一个，如果为真就直接返回，为假的话返回后面为真的，或者最后一个

        // var a = !123;
        // 转化为布尔值再取反
    </script>
</body>

</html>